欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

Matplotlib Task2

一.概述
1. matplotlib的三層api

matplotlib的原理或者說基礎邏輯是,用Artist對象在畫布(canvas)上繪制(Render)圖形。更通俗點的理解就是Artist的作用是調用畫筆來繪制出想要的圖形,canvas是個承接內容的畫布,Render是畫筆。

FigureCanvas:

matplotlib.backend_bases.FigureCanvas 代表了繪圖區,所有的圖像都是在繪圖區完成的。

Renderer:

matplotlib.backend_bases.Renderer 代表了渲染器,可以近似理解為畫筆,控制如何在 FigureCanvas 上畫圖。

Artist:

matplotlib.artist.Artist 代表了具體的圖表組件,即調用了Renderer的接口在Canvas上作圖,具體的調用接口來做出我們想要的圖,比如圖形、文本、線條的設定。

2.Artist的分類

Artist有兩種類型:primitives 和containers。

primitive是基本要素,它包含一些我們要在繪圖區作圖用到的標準圖形對象,如曲線Line2D,文字text,矩形Rectangle,圖像image等。

container是容器,即用來裝基本要素的地方,包括圖形figure、坐標系Axes和坐標軸Axis。

兩者的關系可以通俗的理解為contaniner包含primitives。

可視化中常見的artist類可以參考下圖這張表格:
Axes helper method ? ?Artist ? ?Container
bar - bar charts ? ?Rectangle ? ?ax.patches
errorbar - error bar plots ? ?Line2D and Rectangle ? ?ax.lines and ax.patches
fill - shared area ? ?Polygon ? ?ax.patches
hist - histograms ? ?Rectangle ? ?ax.patches
imshow - image data ? ?AxesImage ? ?ax.images
plot - xy plots ? ?Line2D ? ?ax.lines
scatter - scatter charts ? ?PolyCollection ? ?ax.collections

現對上表進行解釋:

第一列:表示matplotlib中子圖(子圖的概念可以參考我的博客里的task1)上的輔助方法,可以理解為可視化中不同種類的圖表類型,如柱狀圖,折線圖,直方圖等,這些圖表都可以用這些輔助方法直接畫出來,屬于更高層級的抽象。

第二列:表示不同圖表背后的artist類,比如折線圖方法plot在底層用到的就是Line2D這一artist類。

第三列:是第二列的列表容器,例如所有在子圖中創建的Line2D對象都會被自動收集到ax.lines返回的列表中。

二.基本元素-primitives

primitives 的幾種類型:曲線-Line2D,矩形-Rectangle,多邊形-Polygon,圖像-image。

1. 2DLines

在matplotlib中曲線的繪制,主要是通過類 matplotlib.lines.Line2D 來完成的。

matplotlib中線-line的含義:它表示的可以是連接所有頂點的實線樣式,也可以是每個頂點的標記。此外,這條線也會受到繪畫風格的影響,比如,我們可以創建虛線種類的線。

其中常用的的參數有:

? ? xdata:需要繪制的line中點的在x軸上的取值,若忽略,則默認為range(1,len(ydata)+1)
? ? ydata:需要繪制的line中點的在y軸上的取值
? ? linewidth:線條的寬度
? ? linestyle:線型
? ? color:線條的顏色
? ? marker:點的標記,詳細可參考markers API
? ? markersize:標記的size

其他詳細參數可參考Line2D官方文檔

a. 如何設置Line2D的屬性

有三種方法可以用設置線的屬性。

? ? 直接在plot()函數中設置
? ? 通過獲得線對象,對線對象進行設置
? ? 獲得線屬性,使用setp()函數設置

其實下列例子和matlab繪圖比較相似,可以聯想理解
import numpy as np
import pandas as pd
import re
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
from matplotlib.patches import Circle, Wedge
from matplotlib.collections import PatchCollection
# 1) 直接在plot()函數中設置
x = range(0,5)
y = [2,5,7,8,10]
plt.plot(x,y, linewidth=10); # 設置線的粗細參數為10
plt.show()

import numpy as np
import pandas as pd
import re
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
from matplotlib.patches import Circle, Wedge
from matplotlib.collections import PatchCollection
?
# 2) 通過獲得線對象,對線對象進行設置
x = range(0,5)
y = [2,5,7,8,10]
line, = plt.plot(x, y, '-') # 這里等號坐標的line,是一個列表解包的操作,目的是獲取plt.plot返回列表中的Line2D對象
line.set_antialiased(False); # 關閉抗鋸齒功能
plt.show()

文章鏈接: http://www.qzkangyuan.com/21651.html

文章標題:Matplotlib Task2

文章版權:夢飛科技所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創發布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程

Matplotlib Task2

2023-6-29 12:39:19

建站教程

Matplotlib TASK1

2023-6-29 12:48:54

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 郁南县| 杭锦后旗| 枞阳县| 北票市| 仁布县| 方正县| 泉州市| 浪卡子县| 遵义县| 独山县| 临沂市| 藁城市| 聊城市| 宝清县| 山丹县| 安多县| 宜黄县| 乌兰县| 南召县| 广西| 成武县| 衡阳市| 丰台区| 新昌县| 平昌县| 子洲县| 白沙| 洛南县| 岐山县| 西和县| 黎城县| 滦南县| 大丰市| 克什克腾旗| 穆棱市| 于田县| 衡南县| 台北市| 雅江县| 哈巴河县| 古丈县|